package ysq.xyg.sale.service;


import ysq.xyg.base.model.dto.ReturnEntity;
import ysq.xyg.base.service.BaseService;
import ysq.xyg.sale.model.po.SaleRecord;
import ysq.xyg.sys.model.po.SysUser;
import ysq.xyg.sale.model.vo.SaleRecordVo;

import javax.servlet.http.HttpServletRequest;
import java.util.List;

/**
 * 销售模块-流水记录service接口
 *
 * @author shengQiang yu
 * @date 2019-9-24 16:02:37
 */
public interface SaleRecordService extends BaseService<SaleRecord> {
    /**
     * 管理员充值费用
     *
     * @param userId 充值对象id
     * @param money 充值金额
     * @param currentUser 当前用户
     * @return ReturnEntity 对象
     * @author shengQiang yu
     * @date 2019-9-9 14:17:04
     */
    ReturnEntity managerAddMoney(String userId,Double money, SysUser currentUser);
    /**
     * 上级代理充值费用
     *
     * @param userId 充值对象id
     * @param money 充值金额
     * @param currentUser 当前用户
     * @param request
     * @return ReturnEntity 对象
     * @author shengQiang yu
     * @date 2019-9-9 14:17:04
     */
    ReturnEntity parentAddMoney(HttpServletRequest request, String userId, Double money, SysUser currentUser);
    /**
     * 分页查询
     *
     * @param saleRecordVo 对象
     * @param pageSize 当前页面
     * @param pageNum 页面数量
     * @return ReturnEntity 对象
     * @author shengQiang yu
     * @date 2019-9-24 16:02:37
     */
    ReturnEntity page(SaleRecordVo saleRecordVo, int pageSize, int pageNum);
    /**
     * 我的流程分页查询
     *
     * @param saleRecordVo 对象
     * @param pageSize 展示数量
     * @param pageNum 当前页面
     * @return ReturnEntity 对象
     * @author shengQiang yu
     * @date 2019-9-24 16:02:37
     */
    ReturnEntity pageByMy(SaleRecordVo saleRecordVo, int pageSize, int pageNum);
    /**
     * 修改
     *
     * @param saleRecordVo 对象
     * @param currentUser 当前用户
     * @return ReturnEntity 对象
     * @author shengQiang yu
     * @date 2019-9-24 16:02:37
     */
    ReturnEntity addOrUpdate(SaleRecordVo saleRecordVo, SysUser currentUser);
    /**
     * 删除
     *
     * @param id 主键id删除
     * @param currentUser 当前用户
     * @return ReturnEntity 对象
     * @author shengQiang yu
     * @date 2019-9-24 16:02:37
     */
    ReturnEntity delete(String id, SysUser currentUser);
    /**
     * 获取集合
     *
     * @param saleRecordVo 对象
     * @return List<SaleRecord> SaleRecord集合
     * @author shengQiang yu
     * @date 2019-9-24 16:02:37
     */
    List<SaleRecord> acceptList(SaleRecordVo saleRecordVo);
}
